package com.foxitcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

import com.foxitcloud.util.SpringUtil;

/**
 * Spring boot entrance class.
 * 
 */
@EnableAutoConfiguration
@Configuration
@ComponentScan
@EnableConfigurationProperties
public class Application {

    /**
     * Spring boot entrance method.
     * 
     * @param args
     *            String[]
     */

    public static String[] args;

    public static void main(String[] args) {
        Application.args = args;

        ApplicationContext ctx = SpringApplication.run(Application.class, args);
        System.out.println("Spring main() started: " + ctx);

        SpringUtil.setContext(ctx);// 供不能依赖注入的bean使用
        /*
         * System.out.println("Let's inspect the beans provided by Spring Boot:")
         * ; String[] beanNames = ctx.getBeanDefinitionNames();
         * Arrays.sort(beanNames); for (String beanName : beanNames) {
         * System.out.println(beanName); }
         */
    }
}
